Systems employing numerous devices often require or otherwise benefit from the ability for these devices to communicate with one another. While each device or “node” may have its own purpose and responsibilities, they often need to transmit information to, and/or receive information from, other devices of the system. Such nodes can communicate in various communication and network topologies, some of which include sharing a common bus. Multiple nodes that share a common bus can experience collisions unless collision avoidance techniques are employed. Generally, a collision refers to a situation where two or more nodes transmit data on a shared bus at the same time. When this occurs, data corruption and/or other transmission errors can result.
Communications protocols between multiple nodes that share a common bus may provide a manner of avoiding collisions among the communicants, such as collision detection and avoidance via random retry, token passing, and time slot assignment. Time slot assignment involves assigning a unique time slot for each device on the bus, during which the respective device can transmit its data. Thus, each device takes turns in transmitting data to avoid data collisions.
However, current collision avoidance techniques utilizing time slot assignments have numerous drawbacks. For example, a significant amount of time may be required to wait until each of the nodes in the system is allocated its transmission time. This consumes valuable bandwidth, particularly where the nodes send messages infrequently enough that many, if not most, of the available time slots are unused.
Another representative drawback of prior art is the memory required in receiving devices. As it is possible that many or all of the transmitting devices may have a message to send during its allocated time slot, a resulting frame that includes the collective data can be quite sizeable due to the aggregate data from each of the nodes. If a given node may be interested in receiving messages from any or all other nodes, it must be prepared to buffer the entire frame. For example, a receiving node may need to buffer data of a size corresponding to the product of the number of possible nodes and the maximum length of each node's message.
There is a need in the communications industry to address these and other shortcomings of the prior art. The present invention solves these and other problems, and offers other advantages over the prior art.